From: Ian Campbell Date: Fri, 18 Jul 2014 13:08:11 +0000 (+0100) Subject: xen: arm: implement generic multiboot compatibility strings X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~4635 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=a860dfeec090fe46d856b5d3fc6da28ccf7d1ba5;p=xen.git xen: arm: implement generic multiboot compatibility strings This causes Xen to accept the more generic names specified in http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Multiboot as of 2014-06-06. These names are more generic than those proposed by Andre in http://thread.gmane.org/gmane.linux.linaro.announce.boot/326 and those used in earlier drafts of the /Multiboot wiki page. This will allow bootloaders to not special case Xen (or at least to reduce the amount which is required). Signed-off-by: Ian Campbell Acked-by: Julien Grall --- diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c index 53f779a4f3..3d18d7f0cb 100644 --- a/xen/common/device_tree.c +++ b/xen/common/device_tree.c @@ -340,9 +340,11 @@ static void __init process_multiboot_node(const void *fdt, int node, struct dt_mb_module *mod; int len; - if ( fdt_node_check_compatible(fdt, node, "xen,linux-zimage") == 0 ) + if ( fdt_node_check_compatible(fdt, node, "xen,linux-zimage") == 0 || + fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 ) nr = MOD_KERNEL; - else if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") == 0) + else if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") == 0 || + fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") == 0 ) nr = MOD_INITRD; else if ( fdt_node_check_compatible(fdt, node, "xen,xsm-policy") == 0 ) nr = MOD_XSM; @@ -435,7 +437,8 @@ static int __init early_scan_node(const void *fdt, { if ( device_tree_node_matches(fdt, node, "memory") ) process_memory_node(fdt, node, name, address_cells, size_cells); - else if ( device_tree_node_compatible(fdt, node, "xen,multiboot-module" ) ) + else if ( device_tree_node_compatible(fdt, node, "xen,multiboot-module" ) || + device_tree_node_compatible(fdt, node, "multiboot,module" )) process_multiboot_node(fdt, node, name, address_cells, size_cells); else if ( depth == 1 && device_tree_node_matches(fdt, node, "chosen") ) process_chosen_node(fdt, node, name, address_cells, size_cells);